package com.mmy.dao.plane;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.mmy.domain.plane.VPlaneAirport;

public interface VPlaneAirportRepository extends JpaRepository<VPlaneAirport, Integer> {

	/*
	 * 根据name查找
	 */
	@Query(value = "select *  from vPlaneAirport where cAirportName like %:strAirportName%", nativeQuery = true)
	List<VPlaneAirport> findByAirportName(@Param("strAirportName") String strAirportName);

	/**
	 * 函数功能说明： 根据地区查询所在的机场
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @date 创建日期2021.03.17
	 */
	@Query(value = "select *  from vPlaneAirport where iZoneID = :iZoneID", nativeQuery = true)
	List<VPlaneAirport> findByZoneID(@Param("iZoneID") int iZoneID);

	/**
	 * 后台机场信息管理中显示所有机场信息
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间 2021.03.17
	 */
	@Query(value = "select * from vPlaneAirport where(:strAirportName = \"\" or cAirportName like %:strAirportName%)  limit :startIndex,:count", nativeQuery = true)
	List<VPlaneAirport> findSearchALL(@Param("strAirportName") String strAirportName,
			@Param("startIndex") int startIndex, @Param("count") int count);

	/**
	 * 后台机场信息管理中显示所有公司的机场信息 获取分页
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间 2021.02.22
	 */
	@Query(value = "select count(*)  from vPlaneAirport where (:strAirportName = \"\" or cAirportName like %:strAirportName%) ", nativeQuery = true)
	int countSearchALL(@Param("strAirportName") String strAirportName);

	/**
	 * 函数功能说明： 根据地区查询所在的机场
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @date 创建日期2021.03.17
	 */
	@Query(value = "select *  from vPlaneAirport where iZoneID <900000", nativeQuery = true)
	List<VPlaneAirport> getByZoneID();

	/**
	 * 函数功能说明： 根据地区查询所在的机场
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @date 创建日期2021.03.17
	 */
	@Query(value = "select *  from vPlaneAirport where left(iZoneID,2) =left(:iZoneID,2)", nativeQuery = true)
	List<VPlaneAirport> getByZoneID(@Param("iZoneID") int iZoneID);

}
